package inner;

class OuterClass2{
    public int data1 =1 ;
    int data2 = 2;
    public static int data3 = 3;

    public void test(){
        System.out.println("out:: test");
    }

    /**
     * 1.如何获取静态类对象
     *    OuterClass2.InnerClass2 inner = new OuterClass2.InnerClass2();
     * 2.静态内部类内部不能访问外部类的非静态成员变量
     *  非要访问，需要通过外部类引用访问
     *      OuterClass2 outerClass = new OuterClass2();
     *      sout(outerClass.data1)
     */
    static class InnerClass2{
        public int data4 =4;
        int data5 = 5;
        public static int data6 = 6;

        public void func(){
            System.out.println("inner:: func");

            OuterClass2 outerClass = new OuterClass2();
            System.out.println(outerClass.data1);

            //静态内部类不能访问外部类对象
            /*System.out.println(data1);
            System.out.println(data2);*/

            System.out.println(data3);
            System.out.println(data4);
            System.out.println(data5);
        }
    }
}
public class Test2 {
    /**
     * 匿名
     */
    public static void main(String[] args) {
        new OuterClass2();//匿名对象 -- 只能用一次

    }
    /**
     * 局部·内部类
     */
    public void func(){
        //
        class Inner{
            public void test(){
                System.out.println("inner:: test");
            }
        }
    }
    public static void main1(String[] args) {
        //不需要外部类的对象                    (这是一个整体)
        OuterClass2.InnerClass2 inner = new OuterClass2.InnerClass2();


    }
}
